Délka klíče FB0.1

Otázka od: Kalhous Zdenek

18. 11. 2002 14:41

Nedari se mi najit v dokumentaci jake je omezeni na delku klice v
indexu pro IB respektive FB1.0 . Ze muze byt na tabulce klicu
maximalne 64, to jsem nasel. Ale moc se mi nechce po jednom
znaku pridavat a pridavat dokud to nebouchne. Vite nekdo ?

Odpovedá: Pavel Cisar

18. 11. 2002 17:39

Haj hou!

On 18 Nov 2002 at 12:02, Kalhous Zdenek wrote:

> Nedari se mi najit v dokumentaci jake je omezeni na delku klice v
> indexu pro IB respektive FB1.0 . Ze muze byt na tabulce klicu
> maximalne 64, to jsem nasel. Ale moc se mi nechce po jednom
> znaku pridavat a pridavat dokud to nebouchne. Vite nekdo ?

Snad ti nevadi anglictina, ale jsem liny to prekladat.

Starts at 256 bytes for a single-column key, and 200 for
multicolumn keys; subtract four bytes for each additional column.
Example: a single-column CHAR key can be up to 256 Ż 4 = 252
bytes; a three-column key must add up to 200 Ż 12 = 188 bytes.
Note that multibyte character sets must fit within the key by
counting bytes, not by counting characters. For example, a
single-column key using 3-byte UNICODE_FSS characters can
have a maximum of (256 Ż 4) / 3 = 84 characters.

S pozdravem


Pavel Cisar
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase

Odpovedá: Kalhous Zdenek

19. 11. 2002 7:22

On 18 Nov 2002 at 16:24, Pavel Cisar wrote:
> > Nedari se mi najit v dokumentaci jake je omezeni na delku klice v
> > indexu pro IB respektive FB1.0 .
> Starts at 256 bytes for a single-column key, and 200 for
> multicolumn keys; subtract four bytes for each additional column.
Tak to koukam jako blazen. Proc mi tedy odmita pokusy o vytvoreni
indexu podle sloupce ktery je varchar(100) s charset win1250 ?
Tvrdi, ze je to moc dlouhy.Vraj "key size too big for index".

Odpovedá: Pavol Kakacka

19. 11. 2002 10:35

From: "Kalhous Zdenek" <zdenek.kalhous@comarr.cz>
> On 18 Nov 2002 at 16:24, Pavel Cisar wrote:
> > > Nedari se mi najit v dokumentaci jake je omezeni na delku klice v
> > > indexu pro IB respektive FB1.0 .
> > Starts at 256 bytes for a single-column key, and 200 for
> > multicolumn keys; subtract four bytes for each additional column.
> Tak to koukam jako blazen. Proc mi tedy odmita pokusy o vytvoreni
> indexu podle sloupce ktery je varchar(100) s charset win1250 ?
> Tvrdi, ze je to moc dlouhy.Vraj "key size too big for index".

Ako pisal P.Cisar, zalezi na collation. u Win1250, PXW_CSY plati: 252 / 3 =
84. Takze maximalna sirka pre field s tymto collationom a charestom je 84
znakov.
Zmen navrh databaze.

Kakacka Pavol
KasiX@atlas.cz

Odpovedá: Pavol Kakacka

19. 11. 2002 9:49

> Ako pisal P.Cisar, zalezi na collation. u Win1250, PXW_CSY plati: 252 / 3
=
> 84. Takze maximalna sirka pre field s tymto collationom a charestom je 84
> znakov.
> Zmen navrh databaze.

Hmm, teraz ma napada preco vlastne Pavle???

Kakacka Pavol
KasiX@atlas.cz

Odpovedá: Pavel Cisar

19. 11. 2002 12:50

Haj hou!

On 19 Nov 2002 at 8:52, Pavol Kakacka wrote:

> > Ako pisal P.Cisar, zalezi na collation. u Win1250, PXW_CSY plati: 252 / 3
> =
> > 84. Takze maximalna sirka pre field s tymto collationom a charestom je 84
> > znakov.
> > Zmen navrh databaze.
>
> Hmm, teraz ma napada preco vlastne Pavle???

Nutno si uvedomit, ze indexni klic je transformovan tak aby umoznoval
binarmi porovnavani dle charsetu i collate. Presto ze win1250 pouziva
jeden byte na znak, cesky collate pouziva az tri znaky na zakodovani
picmena ve spravnem poradi. Bohuzel, maximalni delka je dana nejhorsim
scenarem.

S pozdravem
Pavel Cisar
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase

Odpovedá: Pavol Kakacka

19. 11. 2002 13:36

From: "Pavel Cisar" <pcisar@users.sourceforge.net>
> Nutno si uvedomit, ze indexni klic je transformovan tak aby umoznoval
> binarmi porovnavani dle charsetu i collate. Presto ze win1250 pouziva
> jeden byte na znak, cesky collate pouziva az tri znaky na zakodovani
> picmena ve spravnem poradi. Bohuzel, maximalni delka je dana nejhorsim
> scenarem.

Hmm, no trochu ma to zarazilo a asi nebudem sam, ale pre charset WIN1250
podla dokumentace k IB (pravdepdobne uz mam staru) maju vsetky collations 1
byte. Takze s najvacsou pravdepodobnostou je problem v dokumentaci. Ale i
tak je divne (aspon si mylim, ak sa nepletiem) ze ceske/slovenske znaky
potrebuju 3 byte.
V podstate mi je to jedno, aspon teraz, len upozornujem na problem.  

Kakacka Pavol
KasiX@atlas.cz

Odpovedá: Pavol Kakacka

19. 11. 2002 13:58

From: "Pavol Kakacka" <kakacka@proca.cz>
> Hmm, no trochu ma to zarazilo a asi nebudem sam, ale pre charset WIN1250
> podla dokumentace k IB (pravdepdobne uz mam staru) maju vsetky collations
1
> byte. Takze s najvacsou pravdepodobnostou je problem v dokumentaci. Ale i
> tak je divne (aspon si mylim, ak sa nepletiem) ze ceske/slovenske znaky
> potrebuju 3 byte.

Sorry, preklep NEpotrebuju 3 byte.

Kakacka Pavol
KasiX@atlas.cz